<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Productosyservicios extends CI_Controller {

    private static $idEst;

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->load->model('categoria_producto_serviciom');
        $this->idEst = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        $data = array();
        $this->loadData($data);
        $this->load->view('header', $data);
        $this->load->view('productosyserviciosV');
        $this->load->view('footer');
    }

    private function loadData(&$data) {
        $data["tab"] = "productosyservicios";
        $data['categorias'] = $this->categoria_producto_serviciom->obtenerCategorias($this->idEst);
    }

    public function crearcategoria() {
        $this->escapar($_POST);
        if (empty($_POST["nombre"]) || empty($_POST["tipo"])) {
            $this->mensaje("Datos incompletos", "advertencia", "productosyservicios");
        } else {
            $tiene_inventdario = ($_POST["tipo"] == "producto") ? 1 : 0;
            $this->categoria_producto_serviciom->crear_categoria($this->idEst, $_POST["nombre"], $_POST["descripcion"], $tiene_inventdario);
            $this->mensaje("Categoría creada exitosamente", "exito", "productosyservicios");
        }
    }

    public function editarcategoria() {
        $this->escapar($_POST);
        if (empty($_POST["idCategoria"]) || empty($_POST["nombre"]) || empty($_POST["tipo"])) {
            $this->mensaje("Datos incompletos", "advertencia", "productosyservicios");
        } else {
            $tiene_inventdario = ($_POST["tipo"] == "producto") ? 1 : 0;
            $this->categoria_producto_serviciom->editar_categoria($this->idEst, $_POST["idCategoria"], $_POST["nombre"], $_POST["descripcion"], $tiene_inventdario);
            $this->mensaje("Categoría editada exitosamente", "exito", "productosyservicios");
        }
    }

    public function eliminarcategoria() {
        $this->escapar($_POST);
        if (empty($_POST["idCategoria"])) {
            $this->mensaje("Datos incompletos", "advertencia", "productosyservicios");
        } else {
            $this->categoria_producto_serviciom->eliminar_categoria($this->idEst, $_POST["idCategoria"]);
            $this->mensaje("Categoría eliminada exitosamente", "exito", "productosyservicios");
        }
    }

    public function verproductos($idCategoria) {

        $data = array();
        $this->loadData2($data, $idCategoria);
        $this->load->view('header', $data);
        $this->load->view('productosyservicioscategoriasV');
        $this->load->view('footer');
    }

    private function loadData2(&$data, $idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $data["tiene_inventario"] = $categoria[0]->tiene_inventario;
        $data["nombreCategoria"] = $categoria[0]->nombre;
        $this->load->model('producto_serviciom');
        $data["tab"] = "productosyserviciosver";
        $data["idCategoria"] = $idCategoria;
        $data['productos'] = $this->producto_serviciom->obtenerServiciosProductos($idCategoria, $this->idEst);
        $data["moneda"] = $_SESSION["establecimiento"]["moneda"];
    }

    public function crearproducto($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->crearProducto($this->idEst, $idCategoria, $_POST);
        $this->mensaje("Producto creado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function editarproducto($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->editarProducto($this->idEst, $_POST);
        $this->mensaje("Producto editado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function eliminarproducto($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->eliminarProducto($this->idEst, $_POST["idProducto"]);
        $this->mensaje("Producto eliminado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function editarinventarioproducto($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('modificacion_inventariom');
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->formatoFechaBD($_POST["fecha"]);
        $this->producto_serviciom->actualizarInventarioPorAjuste($this->idEst, $_POST["idProducto"], $_POST["ajuste"]);
        $this->modificacion_inventariom->modificarHistorialInvenatrio($this->idEst, $_POST["idProducto"], $_POST);
        $this->mensaje("Inventario modificado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function crearservicio($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->crearServicio($this->idEst, $idCategoria, $_POST);
        $this->mensaje("Servicio creado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function editarservicio($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->editarServicio($this->idEst, $_POST);
        $this->mensaje("Servicio editado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

    public function eliminarservicio($idCategoria) {
        $categoria = $this->categoria_producto_serviciom->obtenerCategoria($this->idEst, $idCategoria);
        if (sizeof($categoria) == 0) {
            $this->mensaje("La categoría no existe", "advertencia", "productosyservicios");
        }
        $this->load->model('producto_serviciom');
        $this->escapar($_POST);
        $this->producto_serviciom->eliminarServicio($this->idEst, $_POST["idServicio"]);
        $this->mensaje("Servicio eliminado exitosamente", "exito", "productosyservicios/$idCategoria");
    }

}
